package JavaSEAdvance.day10_MapAndStream.D10_5HomeWork;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author Xiao
 * @date 2021/7/28
 */
public class Test4 {
    /**
     * 问题3：
     * 我国有34个省级行政区，分别是：
     * 23个省：
     * 河北省、山西省、吉林省、辽宁省、黑龙江省、陕西省、甘肃省、青海省、山东省、福建省、
     * 浙江省、台湾省、河南省、湖北省、湖南省、江西省、江苏省、安徽省、广东省、海南省、四川省、贵州省、云南省。
     * 4个直辖市：
     * 北京市、天津市、上海市、重庆市。
     * 5个自治区：
     * 内蒙古自治区、新疆维吾尔自治区、宁夏回族自治区、广西壮族自治区、西藏自治区。
     * 2个特别行政区：
     * 香港特别行政区、澳门特别行政区。
     * 使用流：
     * 1、统计三个字的省份的个数
     * 2、统计名字中包含方位名词的省份（东西南北）的个数
     * 3、打印名字中包含方位名词的普通省份（非自治区直辖市特别行政区）的名字
     * 4、将所有的特殊省份（自治区直辖市特别行政区）提取出来并放到新集合中
     */
    public static void main(String[] args) {
        ArrayList<String> allProvinceList = getAllProvinceList();
        allProvinceList.stream().filter(province -> province.endsWith("省") && province.length() == 3)
                .forEach(province -> System.out.println(province));
        System.out.println("----------");
        List<String> listDirectionDNXB = allProvinceList.stream().filter(
                province -> province.contains("省") && (province.contains("东") || province.contains("南") ||
                        province.contains("西") || province.contains("北"))).collect(Collectors.toList());
        int count = listDirectionDNXB.size();
        System.out.println("方位省份的个数：" + count);
        System.out.println("----------");
        for (String s : listDirectionDNXB) {
            System.out.println(s);
        }
        System.out.println("----------");
        List<String> listNonContainsSheng = allProvinceList.stream().filter
                (province -> !province.contains("省")).collect(Collectors.toList());
        int count1 = listNonContainsSheng.size();
        System.out.println(count1);
        System.out.println("----------");
        for (String province : listNonContainsSheng) {
            System.out.println(province);
        }
    }

    @SuppressWarnings("all")
    private static ArrayList<String> getAllProvinceList() {
        ArrayList<String> list = new ArrayList<>(List.of(
                "河北省、山西省、吉林省、辽宁省、黑龙江省、陕西省、甘肃省、青海省、山东省、福建省、" +
                        "浙江省、台湾省、河南省、湖北省、湖南省、江西省、江苏省、安徽省、广东省、海南省、四川省、贵州省、云南省、" +
                        "北京市、天津市、上海市、重庆市、内蒙古自治区、新疆维吾尔自治区、宁夏回族自治区、广西壮族自治区、西藏自治区、" +
                        "香港特别行政区、澳门特别行政区"
        ));
        /*List<String> list1 = list.stream().map(name -> name.replaceAll("、", ",")).collect(Collectors.toList());
        String s = list1.get(0);*/
        String s = list.get(0);
        String[] province = s.split("、");
        ArrayList<String> list1 = new ArrayList<>();
        for (String s1 : province) {
            list1.add(s1);
        }
        return list1;
    }
}
